
/* #line 1 "./ragel/tsip_parser_header_To.rl" */
/* Copyright (C) 2010-2011 Mamadou Diop. 
* Copyright (C) 2011 Doubango Telecom <http://www.doubango.org>
*
* Contact: Mamadou Diop <diopmamadou(at)doubango(dot)org>
*	
* This file is part of Open Source Xbox-VoIP Project <http://code.google.com/p/xbox-voip/>
*
* Xbox-VoIP is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*	
* XBox-Voip is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*	
* You should have received a copy of the GNU General Public License
* along with XBox-Voip.
*/


/***********************************
*	Ragel state machine.
*/

/* #line 73 "./ragel/tsip_parser_header_To.rl" */


using System;
using Doubango.tinySAK;

namespace Doubango.tinySIP.Headers
{
    public class TSIP_HeaderTo : TSIP_Header
	{
		private String mDisplayName;
		private TSIP_Uri mUri;
		private String mTag;

		public TSIP_HeaderTo()
			: this(null,null,null)
		{
		}

		public TSIP_HeaderTo(String displayName, TSIP_Uri uri, String tag)
			: base(tsip_header_type_t.To)
		{
			this.DisplayName = displayName;
			this.Uri = uri;
			this.Tag = tag;
		}

		public override String Value
        {
            get 
            { 
               // Uri with hacked display-name
                String ret = TSIP_Uri.Serialize(this.Uri, true, true);
                if (ret != null && this.Tag != null)
                {
                    ret += String.Format(";tag={0}", this.Tag);
                }
                return ret;
            }
            set { TSK_Debug.Error("Not implemented"); }
        }

		public String DisplayName
		{
			get { return mDisplayName; }
			set { mDisplayName = value;}
		}

		public TSIP_Uri Uri
			{
			get { return mUri; }
			set { mUri = value;}
		}

		public String Tag
		{
			get { return mTag; }
			set { mTag = value;}
		}

		
/* #line 91 "../Headers/TSIP_HeaderTo.cs" */
static readonly sbyte[] _tsip_machine_parser_header_To_actions =  new sbyte [] {
	0, 1, 0, 1, 1, 1, 2, 1, 
	3, 1, 4, 1, 5, 2, 1, 3, 
	2, 1, 4
};

static readonly short[] _tsip_machine_parser_header_To_key_offsets =  new short [] {
	0, 0, 2, 7, 10, 31, 32, 34, 
	55, 56, 58, 61, 65, 77, 80, 80, 
	81, 85, 86, 105, 106, 108, 126, 145, 
	150, 151, 153, 157, 176, 177, 179, 198, 
	199, 201, 204, 212, 213, 215, 219, 223, 
	224, 226, 229, 235, 253, 260, 268, 276, 
	284, 286, 293, 302, 304, 307, 309, 312, 
	314, 317, 320, 321, 324, 325, 328, 329, 
	338, 347, 355, 363, 371, 379, 381, 387, 
	396, 405, 414, 416, 419, 422, 423, 424, 
	445, 466, 485, 490, 491, 493, 497, 516, 
	517, 519, 538, 556, 573, 591, 595, 596, 
	598, 606, 607, 609, 613, 619, 639, 658, 
	663, 663, 667, 687, 706, 711, 731, 749, 
	759, 763, 793, 822, 833, 862, 890, 898, 
	908, 931, 955, 979, 1003, 1015, 1038, 1063, 
	1077, 1092, 1106, 1121, 1135, 1150, 1165, 1176, 
	1191, 1202, 1217, 1228, 1253, 1278, 1302, 1326, 
	1350, 1374, 1386, 1408, 1433, 1458, 1483, 1497, 
	1512, 1527, 1538, 1549, 1580, 1611, 1640, 1651, 
	1680, 1708, 1719, 1731, 1743, 1755, 1761, 1772, 
	1785, 1791, 1798, 1804, 1811, 1817, 1824, 1831, 
	1836, 1843, 1848, 1855, 1860, 1873, 1886, 1898, 
	1910, 1922, 1934, 1940, 1950, 1963, 1976, 1989, 
	1995, 2002, 2009, 2014, 2019, 2040, 2061, 2080, 
	2085, 2105, 2123
};

static readonly char[] _tsip_machine_parser_header_To_trans_keys =  new char [] {
	'\u0054', '\u0074', '\u0009', '\u0020', '\u003a', '\u004f', '\u006f', '\u0009', 
	'\u0020', '\u003a', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0025', 
	'\u0027', '\u003c', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u0060', '\u0061', '\u007a', '\u000a', 
	'\u0009', '\u0020', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0025', 
	'\u0027', '\u003c', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u0060', '\u0061', '\u007a', '\u000a', 
	'\u0009', '\u0020', '\u0009', '\u0020', '\u003c', '\u0041', '\u005a', '\u0061', 
	'\u007a', '\u0009', '\u0020', '\u002b', '\u003a', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u0061', '\u007a', '\u0009', '\u0020', '\u003a', 
	'\u003e', '\u0009', '\u000d', '\u0020', '\u003b', '\u000a', '\u0009', '\u000d', 
	'\u0020', '\u0021', '\u0025', '\u0027', '\u0054', '\u0074', '\u007e', '\u002a', 
	'\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', 
	'\u007a', '\u000a', '\u0009', '\u0020', '\u0009', '\u0020', '\u0021', '\u0025', 
	'\u0027', '\u0054', '\u0074', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', 
	'\u0030', '\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', 
	'\u0020', '\u0021', '\u0025', '\u0027', '\u003b', '\u003d', '\u007e', '\u002a', 
	'\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', 
	'\u007a', '\u0009', '\u000d', '\u0020', '\u003b', '\u003d', '\u000a', '\u0009', 
	'\u0020', '\u0009', '\u0020', '\u003b', '\u003d', '\u0009', '\u000d', '\u0020', 
	'\u0021', '\u0022', '\u0025', '\u0027', '\u005b', '\u007e', '\u002a', '\u002b', 
	'\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', '\u007a', 
	'\u000a', '\u0009', '\u0020', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', 
	'\u0025', '\u0027', '\u005b', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', 
	'\u0030', '\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u000a', '\u0009', 
	'\u0020', '\u0009', '\u0020', '\u0022', '\u0009', '\u000d', '\u0022', '\u005c', 
	'\u0020', '\u007e', '\u0080', '\u00ff', '\u000a', '\u0009', '\u0020', '\u0009', 
	'\u000d', '\u0020', '\u003b', '\u0009', '\u000d', '\u0020', '\u003b', '\u000a', 
	'\u0009', '\u0020', '\u0009', '\u0020', '\u003b', '\u0000', '\u0009', '\u000b', 
	'\u000c', '\u000e', '\u007f', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', 
	'\u0027', '\u003b', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u003a', '\u0030', '\u0039', 
	'\u0041', '\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', 
	'\u0041', '\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', 
	'\u0041', '\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', 
	'\u0041', '\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u003a', '\u0030', 
	'\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u002e', '\u003a', '\u005d', 
	'\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0030', '\u0039', 
	'\u002e', '\u0030', '\u0039', '\u0030', '\u0039', '\u002e', '\u0030', '\u0039', 
	'\u0030', '\u0039', '\u005d', '\u0030', '\u0039', '\u005d', '\u0030', '\u0039', 
	'\u005d', '\u002e', '\u0030', '\u0039', '\u002e', '\u002e', '\u0030', '\u0039', 
	'\u002e', '\u002e', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', '\u0046', 
	'\u0061', '\u0066', '\u002e', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u003a', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u002e', '\u003a', '\u005d', '\u0030', '\u0039', 
	'\u0041', '\u0046', '\u0061', '\u0066', '\u002e', '\u003a', '\u005d', '\u0030', 
	'\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u002e', '\u003a', '\u005d', 
	'\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0030', '\u0039', 
	'\u002e', '\u0030', '\u0039', '\u002e', '\u0030', '\u0039', '\u002e', '\u003a', 
	'\u0009', '\u000d', '\u0020', '\u0021', '\u0025', '\u0027', '\u003b', '\u003d', 
	'\u0041', '\u0061', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0042', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', 
	'\u0021', '\u0025', '\u0027', '\u003b', '\u003d', '\u0047', '\u0067', '\u007e', 
	'\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', 
	'\u005f', '\u007a', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', '\u0027', 
	'\u003b', '\u003d', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', 
	'\u003b', '\u003d', '\u000a', '\u0009', '\u0020', '\u0009', '\u0020', '\u003b', 
	'\u003d', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', 
	'\u005b', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', 
	'\u0041', '\u005a', '\u005f', '\u007a', '\u000a', '\u0009', '\u0020', '\u0009', 
	'\u000d', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u005b', '\u007e', 
	'\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', 
	'\u005f', '\u007a', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', '\u0027', 
	'\u003b', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', 
	'\u0041', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', '\u0021', 
	'\u0025', '\u0027', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', 
	'\u0021', '\u0025', '\u0027', '\u003c', '\u007e', '\u002a', '\u002b', '\u002d', 
	'\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', 
	'\u000d', '\u0020', '\u003c', '\u000a', '\u0009', '\u0020', '\u0009', '\u000d', 
	'\u0022', '\u005c', '\u0020', '\u007e', '\u0080', '\u00ff', '\u000a', '\u0009', 
	'\u0020', '\u0009', '\u000d', '\u0020', '\u003c', '\u0000', '\u0009', '\u000b', 
	'\u000c', '\u000e', '\u007f', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', 
	'\u0027', '\u002a', '\u002b', '\u003a', '\u007e', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u0060', '\u0061', '\u007a', '\u0009', 
	'\u000d', '\u0020', '\u0021', '\u0025', '\u0027', '\u003a', '\u003c', '\u007e', 
	'\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', 
	'\u005f', '\u007a', '\u0009', '\u000d', '\u0020', '\u003a', '\u003c', '\u0009', 
	'\u000d', '\u0020', '\u003b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', 
	'\u0027', '\u003b', '\u0054', '\u0074', '\u007e', '\u002a', '\u002b', '\u002d', 
	'\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', 
	'\u000d', '\u0020', '\u0021', '\u0025', '\u0027', '\u003b', '\u003d', '\u007e', 
	'\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', 
	'\u005f', '\u007a', '\u0009', '\u000d', '\u0020', '\u003b', '\u003d', '\u0009', 
	'\u000d', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u003b', '\u005b', 
	'\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', 
	'\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', 
	'\u0027', '\u003b', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', 
	'\u0022', '\u003b', '\u005c', '\u0021', '\u007e', '\u0080', '\u00ff', '\u0009', 
	'\u000d', '\u0020', '\u003b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', 
	'\u0025', '\u0027', '\u002c', '\u002f', '\u003b', '\u0054', '\u005c', '\u0074', 
	'\u007e', '\u0023', '\u0029', '\u002a', '\u0039', '\u003a', '\u0040', '\u0041', 
	'\u005a', '\u005b', '\u005e', '\u005f', '\u007a', '\u007b', '\u007d', '\u0080', 
	'\u00ff', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', 
	'\u002c', '\u002f', '\u003b', '\u003d', '\u005c', '\u007e', '\u0023', '\u0029', 
	'\u002a', '\u0039', '\u003a', '\u0040', '\u0041', '\u005a', '\u005b', '\u005e', 
	'\u005f', '\u007a', '\u007b', '\u007d', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003b', '\u003d', '\u005c', '\u0021', '\u007e', '\u0080', 
	'\u00ff', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', 
	'\u002c', '\u002f', '\u003b', '\u005b', '\u005c', '\u007e', '\u0023', '\u0029', 
	'\u002a', '\u0039', '\u003a', '\u0040', '\u0041', '\u005a', '\u005d', '\u005e', 
	'\u005f', '\u007a', '\u007b', '\u007d', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002c', '\u002f', '\u003b', 
	'\u005c', '\u007e', '\u0023', '\u0029', '\u002a', '\u0039', '\u003a', '\u0040', 
	'\u0041', '\u005a', '\u005b', '\u005e', '\u005f', '\u007a', '\u007b', '\u007d', 
	'\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u003b', '\u0000', '\u0008', 
	'\u000b', '\u007f', '\u0009', '\u000d', '\u0020', '\u0022', '\u003b', '\u005c', 
	'\u0021', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', 
	'\u003a', '\u003b', '\u005c', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', 
	'\u0040', '\u0041', '\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', 
	'\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003a', 
	'\u003b', '\u005c', '\u005d', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', 
	'\u0040', '\u0041', '\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', 
	'\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003a', 
	'\u003b', '\u005c', '\u005d', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', 
	'\u0040', '\u0041', '\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', 
	'\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003a', 
	'\u003b', '\u005c', '\u005d', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', 
	'\u0040', '\u0041', '\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', 
	'\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003a', 
	'\u003b', '\u005c', '\u005d', '\u0021', '\u007e', '\u0080', '\u00ff', '\u0009', 
	'\u000d', '\u0020', '\u0022', '\u003a', '\u003b', '\u005c', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', 
	'\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u002e', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', 
	'\u002f', '\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', 
	'\u0060', '\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', 
	'\u000d', '\u0020', '\u0022', '\u003b', '\u005c', '\u0021', '\u002f', '\u0030', 
	'\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', 
	'\u0022', '\u002e', '\u003b', '\u005c', '\u0021', '\u002f', '\u0030', '\u0039', 
	'\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', 
	'\u003b', '\u005c', '\u0021', '\u002f', '\u0030', '\u0039', '\u003a', '\u007e', 
	'\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003b', 
	'\u005c', '\u0021', '\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', 
	'\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003b', '\u005c', '\u0021', 
	'\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', 
	'\u000d', '\u0020', '\u0022', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', '\u0030', 
	'\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', 
	'\u0022', '\u003b', '\u005c', '\u005d', '\u0021', '\u007e', '\u0080', '\u00ff', 
	'\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003b', '\u005c', '\u0021', 
	'\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', 
	'\u000d', '\u0020', '\u0022', '\u002e', '\u003b', '\u005c', '\u0021', '\u007e', 
	'\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003b', 
	'\u005c', '\u0021', '\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', 
	'\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003b', '\u005c', 
	'\u0021', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', 
	'\u002e', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', '\u0030', 
	'\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', '\u0061', 
	'\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', 
	'\u0022', '\u002e', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', 
	'\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', 
	'\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', 
	'\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', 
	'\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u002f', 
	'\u0030', '\u0039', '\u003c', '\u0040', '\u0041', '\u0046', '\u0047', '\u0060', 
	'\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', 
	'\u0020', '\u0022', '\u003a', '\u003b', '\u005c', '\u005d', '\u0021', '\u007e', 
	'\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003b', '\u005c', 
	'\u0021', '\u002f', '\u0030', '\u0039', '\u003a', '\u0040', '\u0041', '\u0046', 
	'\u0047', '\u0060', '\u0061', '\u0066', '\u0067', '\u007e', '\u0080', '\u00ff', 
	'\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003a', '\u003b', '\u005c', 
	'\u005d', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', '\u0040', '\u0041', 
	'\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', '\u007e', '\u0080', 
	'\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003a', '\u003b', 
	'\u005c', '\u005d', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', '\u0040', 
	'\u0041', '\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', '\u007e', 
	'\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003a', 
	'\u003b', '\u005c', '\u005d', '\u0021', '\u002f', '\u0030', '\u0039', '\u003c', 
	'\u0040', '\u0041', '\u0046', '\u0047', '\u0060', '\u0061', '\u0066', '\u0067', 
	'\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003b', 
	'\u005c', '\u0021', '\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', 
	'\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003b', '\u005c', 
	'\u0021', '\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', 
	'\u0009', '\u000d', '\u0020', '\u0022', '\u002e', '\u003b', '\u005c', '\u0021', 
	'\u002f', '\u0030', '\u0039', '\u003a', '\u007e', '\u0080', '\u00ff', '\u0009', 
	'\u000d', '\u0020', '\u0022', '\u002e', '\u003b', '\u005c', '\u0021', '\u007e', 
	'\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0022', '\u003a', '\u003b', 
	'\u005c', '\u0021', '\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', 
	'\u0021', '\u0022', '\u0025', '\u0027', '\u002c', '\u002f', '\u003b', '\u003d', 
	'\u0041', '\u005c', '\u0061', '\u007e', '\u0023', '\u0029', '\u002a', '\u0039', 
	'\u003a', '\u0040', '\u0042', '\u005a', '\u005b', '\u005e', '\u005f', '\u007a', 
	'\u007b', '\u007d', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0021', 
	'\u0022', '\u0025', '\u0027', '\u002c', '\u002f', '\u003b', '\u003d', '\u0047', 
	'\u005c', '\u0067', '\u007e', '\u0023', '\u0029', '\u002a', '\u0039', '\u003a', 
	'\u0040', '\u0041', '\u005a', '\u005b', '\u005e', '\u005f', '\u007a', '\u007b', 
	'\u007d', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', 
	'\u0025', '\u0027', '\u002c', '\u002f', '\u003b', '\u003d', '\u005c', '\u007e', 
	'\u0023', '\u0029', '\u002a', '\u0039', '\u003a', '\u0040', '\u0041', '\u005a', 
	'\u005b', '\u005e', '\u005f', '\u007a', '\u007b', '\u007d', '\u0080', '\u00ff', 
	'\u0009', '\u000d', '\u0020', '\u0022', '\u003b', '\u003d', '\u005c', '\u0021', 
	'\u007e', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', 
	'\u0025', '\u0027', '\u002c', '\u002f', '\u003b', '\u005b', '\u005c', '\u007e', 
	'\u0023', '\u0029', '\u002a', '\u0039', '\u003a', '\u0040', '\u0041', '\u005a', 
	'\u005d', '\u005e', '\u005f', '\u007a', '\u007b', '\u007d', '\u0080', '\u00ff', 
	'\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002c', 
	'\u002f', '\u003b', '\u005c', '\u007e', '\u0023', '\u0029', '\u002a', '\u0039', 
	'\u003a', '\u0040', '\u0041', '\u005a', '\u005b', '\u005e', '\u005f', '\u007a', 
	'\u007b', '\u007d', '\u0080', '\u00ff', '\u0009', '\u000d', '\u0020', '\u003a', 
	'\u003b', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', 
	'\u000d', '\u0020', '\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u0009', '\u000d', '\u0020', '\u003a', '\u003b', 
	'\u005d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', 
	'\u000d', '\u0020', '\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u0009', '\u000d', '\u0020', '\u003a', '\u003b', 
	'\u005d', '\u0009', '\u000d', '\u0020', '\u003a', '\u003b', '\u0030', '\u0039', 
	'\u0041', '\u0046', '\u0061', '\u0066', '\u0009', '\u000d', '\u0020', '\u002e', 
	'\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', 
	'\u0066', '\u0009', '\u000d', '\u0020', '\u003b', '\u0030', '\u0039', '\u0009', 
	'\u000d', '\u0020', '\u002e', '\u003b', '\u0030', '\u0039', '\u0009', '\u000d', 
	'\u0020', '\u003b', '\u0030', '\u0039', '\u0009', '\u000d', '\u0020', '\u002e', 
	'\u003b', '\u0030', '\u0039', '\u0009', '\u000d', '\u0020', '\u003b', '\u0030', 
	'\u0039', '\u0009', '\u000d', '\u0020', '\u003b', '\u005d', '\u0030', '\u0039', 
	'\u0009', '\u000d', '\u0020', '\u003b', '\u005d', '\u0030', '\u0039', '\u0009', 
	'\u000d', '\u0020', '\u003b', '\u005d', '\u0009', '\u000d', '\u0020', '\u002e', 
	'\u003b', '\u0030', '\u0039', '\u0009', '\u000d', '\u0020', '\u002e', '\u003b', 
	'\u0009', '\u000d', '\u0020', '\u002e', '\u003b', '\u0030', '\u0039', '\u0009', 
	'\u000d', '\u0020', '\u002e', '\u003b', '\u0009', '\u000d', '\u0020', '\u002e', 
	'\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', 
	'\u0066', '\u0009', '\u000d', '\u0020', '\u002e', '\u003a', '\u003b', '\u005d', 
	'\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', '\u000d', 
	'\u0020', '\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', '\u0046', 
	'\u0061', '\u0066', '\u0009', '\u000d', '\u0020', '\u003a', '\u003b', '\u005d', 
	'\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', '\u000d', 
	'\u0020', '\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', '\u0046', 
	'\u0061', '\u0066', '\u0009', '\u000d', '\u0020', '\u003a', '\u003b', '\u005d', 
	'\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', '\u000d', 
	'\u0020', '\u003a', '\u003b', '\u005d', '\u0009', '\u000d', '\u0020', '\u003b', 
	'\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', '\u000d', 
	'\u0020', '\u002e', '\u003a', '\u003b', '\u005d', '\u0030', '\u0039', '\u0041', 
	'\u0046', '\u0061', '\u0066', '\u0009', '\u000d', '\u0020', '\u002e', '\u003a', 
	'\u003b', '\u005d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', 
	'\u0009', '\u000d', '\u0020', '\u002e', '\u003a', '\u003b', '\u005d', '\u0030', 
	'\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0009', '\u000d', '\u0020', 
	'\u003b', '\u0030', '\u0039', '\u0009', '\u000d', '\u0020', '\u002e', '\u003b', 
	'\u0030', '\u0039', '\u0009', '\u000d', '\u0020', '\u002e', '\u003b', '\u0030', 
	'\u0039', '\u0009', '\u000d', '\u0020', '\u002e', '\u003b', '\u0009', '\u000d', 
	'\u0020', '\u003a', '\u003b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', 
	'\u0027', '\u003b', '\u003d', '\u0041', '\u0061', '\u007e', '\u002a', '\u002b', 
	'\u002d', '\u002e', '\u0030', '\u0039', '\u0042', '\u005a', '\u005f', '\u007a', 
	'\u0009', '\u000d', '\u0020', '\u0021', '\u0025', '\u0027', '\u003b', '\u003d', 
	'\u0047', '\u0067', '\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', 
	'\u0039', '\u0041', '\u005a', '\u005f', '\u007a', '\u0009', '\u000d', '\u0020', 
	'\u0021', '\u0025', '\u0027', '\u003b', '\u003d', '\u007e', '\u002a', '\u002b', 
	'\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', '\u007a', 
	'\u0009', '\u000d', '\u0020', '\u003b', '\u003d', '\u0009', '\u000d', '\u0020', 
	'\u0021', '\u0022', '\u0025', '\u0027', '\u003b', '\u005b', '\u007e', '\u002a', 
	'\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', '\u005a', '\u005f', 
	'\u007a', '\u0009', '\u000d', '\u0020', '\u0021', '\u0025', '\u0027', '\u003b', 
	'\u007e', '\u002a', '\u002b', '\u002d', '\u002e', '\u0030', '\u0039', '\u0041', 
	'\u005a', '\u005f', '\u007a', (char) 0
};

static readonly sbyte[] _tsip_machine_parser_header_To_single_lengths =  new sbyte [] {
	0, 2, 5, 3, 9, 1, 2, 9, 
	1, 2, 3, 0, 4, 3, 0, 1, 
	4, 1, 9, 1, 2, 8, 9, 5, 
	1, 2, 4, 9, 1, 2, 9, 1, 
	2, 3, 4, 1, 2, 4, 4, 1, 
	2, 3, 0, 8, 1, 2, 2, 2, 
	2, 1, 3, 0, 1, 0, 1, 0, 
	1, 1, 1, 1, 1, 1, 1, 3, 
	3, 2, 2, 2, 2, 2, 0, 3, 
	3, 3, 0, 1, 1, 1, 1, 11, 
	11, 9, 5, 1, 2, 4, 9, 1, 
	2, 9, 8, 7, 8, 4, 1, 2, 
	4, 1, 2, 4, 0, 10, 9, 5, 
	0, 4, 10, 9, 5, 10, 8, 6, 
	4, 14, 13, 7, 13, 12, 4, 6, 
	7, 8, 8, 8, 8, 7, 9, 6, 
	7, 6, 7, 6, 7, 7, 7, 7, 
	7, 7, 7, 9, 9, 8, 8, 8, 
	8, 8, 6, 9, 9, 9, 6, 7, 
	7, 7, 7, 15, 15, 13, 7, 13, 
	12, 5, 6, 6, 6, 6, 5, 7, 
	4, 5, 4, 5, 4, 5, 5, 5, 
	5, 5, 5, 5, 7, 7, 6, 6, 
	6, 6, 6, 4, 7, 7, 7, 4, 
	5, 5, 5, 5, 11, 11, 9, 5, 
	10, 8, 0
};

static readonly sbyte[] _tsip_machine_parser_header_To_range_lengths =  new sbyte [] {
	0, 0, 0, 0, 6, 0, 0, 6, 
	0, 0, 0, 2, 4, 0, 0, 0, 
	0, 0, 5, 0, 0, 5, 5, 0, 
	0, 0, 0, 5, 0, 0, 5, 0, 
	0, 0, 2, 0, 0, 0, 0, 0, 
	0, 0, 3, 5, 3, 3, 3, 3, 
	0, 3, 3, 1, 1, 1, 1, 1, 
	1, 1, 0, 1, 0, 1, 0, 3, 
	3, 3, 3, 3, 3, 0, 3, 3, 
	3, 3, 1, 1, 1, 0, 0, 5, 
	5, 5, 0, 0, 0, 0, 5, 0, 
	0, 5, 5, 5, 5, 0, 0, 0, 
	2, 0, 0, 0, 3, 5, 5, 0, 
	0, 0, 5, 5, 0, 5, 5, 2, 
	0, 8, 8, 2, 8, 8, 2, 2, 
	8, 8, 8, 8, 2, 8, 8, 4, 
	4, 4, 4, 4, 4, 4, 2, 4, 
	2, 4, 2, 8, 8, 8, 8, 8, 
	8, 2, 8, 8, 8, 8, 4, 4, 
	4, 2, 2, 8, 8, 8, 2, 8, 
	8, 3, 3, 3, 3, 0, 3, 3, 
	1, 1, 1, 1, 1, 1, 1, 0, 
	1, 0, 1, 0, 3, 3, 3, 3, 
	3, 3, 0, 3, 3, 3, 3, 1, 
	1, 1, 0, 0, 5, 5, 5, 0, 
	5, 5, 0
};

static readonly short[] _tsip_machine_parser_header_To_index_offsets =  new short [] {
	0, 0, 3, 9, 13, 29, 31, 34, 
	50, 52, 55, 59, 62, 71, 75, 76, 
	78, 83, 85, 100, 102, 105, 119, 134, 
	140, 142, 145, 150, 165, 167, 170, 185, 
	187, 190, 194, 201, 203, 206, 211, 216, 
	218, 221, 225, 229, 243, 248, 254, 260, 
	266, 269, 274, 281, 283, 286, 288, 291, 
	293, 296, 299, 301, 304, 306, 309, 311, 
	318, 325, 331, 337, 343, 349, 352, 356, 
	363, 370, 377, 379, 382, 385, 387, 389, 
	406, 423, 438, 444, 446, 449, 454, 469, 
	471, 474, 489, 503, 516, 530, 535, 537, 
	540, 547, 549, 552, 557, 561, 577, 592, 
	598, 599, 604, 620, 635, 641, 657, 671, 
	680, 685, 708, 730, 740, 762, 783, 790, 
	799, 815, 832, 849, 866, 877, 893, 911, 
	922, 934, 945, 957, 968, 980, 992, 1002, 
	1014, 1024, 1036, 1046, 1064, 1082, 1099, 1116, 
	1133, 1150, 1161, 1176, 1194, 1212, 1230, 1241, 
	1253, 1265, 1275, 1285, 1309, 1333, 1355, 1365, 
	1387, 1408, 1417, 1427, 1437, 1447, 1454, 1463, 
	1474, 1480, 1487, 1493, 1500, 1506, 1513, 1520, 
	1526, 1533, 1539, 1546, 1552, 1563, 1574, 1584, 
	1594, 1604, 1614, 1621, 1629, 1640, 1651, 1662, 
	1668, 1675, 1682, 1688, 1694, 1711, 1728, 1743, 
	1749, 1765, 1779
};

static readonly byte[] _tsip_machine_parser_header_To_indicies =  new byte [] {
	0, 0, 1, 2, 2, 3, 2, 2, 
	1, 2, 2, 3, 1, 3, 4, 3, 
	5, 6, 5, 5, 7, 5, 5, 5, 
	5, 8, 5, 8, 1, 9, 1, 10, 
	10, 1, 10, 11, 10, 5, 6, 5, 
	5, 7, 5, 5, 5, 5, 8, 5, 
	8, 1, 12, 1, 13, 13, 1, 13, 
	13, 7, 1, 14, 14, 1, 15, 15, 
	16, 17, 16, 16, 16, 16, 1, 15, 
	15, 17, 1, 18, 19, 18, 20, 21, 
	20, 22, 1, 23, 1, 22, 24, 22, 
	25, 25, 25, 26, 26, 25, 25, 25, 
	25, 25, 25, 1, 27, 1, 28, 28, 
	1, 28, 28, 25, 25, 25, 26, 26, 
	25, 25, 25, 25, 25, 25, 1, 29, 
	30, 29, 31, 31, 31, 32, 33, 31, 
	31, 31, 31, 31, 31, 1, 34, 35, 
	34, 22, 33, 1, 36, 1, 37, 37, 
	1, 37, 37, 22, 33, 1, 33, 38, 
	33, 39, 40, 39, 39, 41, 39, 39, 
	39, 39, 39, 39, 1, 42, 1, 43, 
	43, 1, 43, 44, 43, 39, 40, 39, 
	39, 41, 39, 39, 39, 39, 39, 39, 
	1, 45, 1, 46, 46, 1, 46, 46, 
	40, 1, 40, 47, 48, 49, 40, 40, 
	1, 50, 1, 40, 40, 1, 51, 30, 
	51, 32, 1, 52, 53, 52, 22, 1, 
	54, 1, 55, 55, 1, 55, 55, 22, 
	1, 40, 40, 40, 1, 51, 30, 51, 
	39, 39, 39, 32, 39, 39, 39, 39, 
	39, 39, 1, 57, 56, 56, 56, 1, 
	59, 48, 58, 58, 58, 1, 59, 48, 
	60, 60, 60, 1, 59, 48, 61, 61, 
	61, 1, 59, 48, 1, 63, 62, 56, 
	56, 1, 64, 59, 48, 65, 58, 58, 
	1, 66, 1, 67, 68, 1, 69, 1, 
	70, 71, 1, 72, 1, 48, 73, 1, 
	48, 74, 1, 48, 1, 70, 75, 1, 
	70, 1, 67, 76, 1, 67, 1, 64, 
	59, 48, 77, 60, 60, 1, 64, 59, 
	48, 61, 61, 61, 1, 79, 48, 78, 
	78, 78, 1, 81, 48, 80, 80, 80, 
	1, 81, 48, 82, 82, 82, 1, 81, 
	48, 83, 83, 83, 1, 81, 48, 1, 
	84, 78, 78, 1, 64, 81, 48, 85, 
	80, 80, 1, 64, 81, 48, 86, 82, 
	82, 1, 64, 81, 48, 83, 83, 83, 
	1, 87, 1, 64, 88, 1, 64, 89, 
	1, 64, 1, 63, 1, 29, 30, 29, 
	31, 31, 31, 32, 33, 90, 90, 31, 
	31, 31, 31, 31, 31, 1, 29, 30, 
	29, 31, 31, 31, 32, 33, 91, 91, 
	31, 31, 31, 31, 31, 31, 1, 92, 
	30, 92, 31, 31, 31, 32, 93, 31, 
	31, 31, 31, 31, 31, 1, 94, 95, 
	94, 22, 93, 1, 96, 1, 97, 97, 
	1, 97, 97, 22, 93, 1, 93, 98, 
	93, 99, 40, 99, 99, 41, 99, 99, 
	99, 99, 99, 99, 1, 100, 1, 101, 
	101, 1, 101, 44, 101, 99, 40, 99, 
	99, 41, 99, 99, 99, 99, 99, 99, 
	1, 102, 103, 102, 104, 104, 104, 105, 
	104, 104, 104, 104, 104, 104, 1, 106, 
	107, 106, 108, 108, 108, 108, 108, 108, 
	108, 108, 108, 1, 109, 110, 109, 108, 
	108, 108, 111, 108, 108, 108, 108, 108, 
	108, 1, 112, 11, 112, 7, 1, 113, 
	1, 106, 106, 1, 114, 115, 116, 117, 
	114, 114, 1, 118, 1, 114, 114, 1, 
	109, 110, 109, 111, 1, 114, 114, 114, 
	1, 119, 107, 119, 108, 108, 108, 108, 
	120, 121, 108, 120, 120, 120, 108, 120, 
	1, 122, 110, 122, 108, 108, 108, 121, 
	111, 108, 108, 108, 108, 108, 108, 1, 
	123, 11, 123, 121, 7, 1, 124, 125, 
	126, 125, 127, 124, 127, 126, 127, 128, 
	128, 128, 127, 129, 129, 128, 128, 128, 
	128, 128, 128, 124, 130, 131, 130, 132, 
	132, 132, 133, 134, 132, 132, 132, 132, 
	132, 132, 124, 135, 126, 135, 127, 134, 
	124, 136, 126, 136, 137, 138, 137, 137, 
	127, 139, 137, 137, 137, 137, 137, 137, 
	124, 140, 131, 140, 137, 137, 137, 133, 
	137, 137, 137, 137, 137, 137, 124, 141, 
	126, 141, 142, 143, 144, 138, 138, 124, 
	140, 131, 140, 133, 124, 143, 126, 143, 
	145, 142, 145, 145, 138, 138, 143, 146, 
	144, 146, 145, 138, 145, 138, 145, 138, 
	145, 138, 138, 124, 147, 131, 147, 148, 
	142, 148, 148, 138, 138, 149, 150, 144, 
	148, 138, 148, 138, 148, 138, 148, 138, 
	138, 124, 151, 126, 151, 142, 143, 150, 
	144, 138, 138, 124, 152, 126, 152, 153, 
	154, 153, 153, 138, 138, 143, 155, 144, 
	153, 138, 153, 138, 153, 138, 153, 138, 
	138, 124, 156, 131, 156, 153, 142, 153, 
	153, 138, 138, 149, 144, 153, 138, 153, 
	138, 153, 138, 153, 138, 138, 124, 141, 
	126, 141, 143, 138, 138, 124, 156, 131, 
	156, 142, 149, 144, 138, 138, 124, 141, 
	126, 141, 142, 158, 143, 144, 138, 157, 
	138, 157, 138, 157, 138, 138, 124, 141, 
	126, 141, 142, 160, 143, 144, 154, 138, 
	159, 138, 159, 138, 159, 138, 138, 124, 
	141, 126, 141, 142, 160, 143, 144, 154, 
	138, 161, 138, 161, 138, 161, 138, 138, 
	124, 141, 126, 141, 142, 160, 143, 144, 
	154, 138, 162, 138, 162, 138, 162, 138, 
	138, 124, 141, 126, 141, 142, 160, 143, 
	144, 154, 138, 138, 124, 141, 126, 141, 
	142, 164, 143, 144, 138, 163, 138, 157, 
	138, 157, 138, 138, 124, 141, 126, 141, 
	142, 165, 160, 143, 144, 154, 138, 166, 
	138, 159, 138, 159, 138, 138, 124, 141, 
	126, 141, 142, 143, 144, 138, 167, 138, 
	138, 124, 141, 126, 141, 142, 168, 143, 
	144, 138, 169, 138, 138, 124, 141, 126, 
	141, 142, 143, 144, 138, 170, 138, 138, 
	124, 141, 126, 141, 142, 171, 143, 144, 
	138, 172, 138, 138, 124, 141, 126, 141, 
	142, 143, 144, 138, 173, 138, 138, 124, 
	141, 126, 141, 142, 143, 144, 154, 138, 
	174, 138, 138, 124, 141, 126, 141, 142, 
	143, 144, 154, 138, 175, 138, 138, 124, 
	141, 126, 141, 142, 143, 144, 154, 138, 
	138, 124, 141, 126, 141, 142, 171, 143, 
	144, 138, 176, 138, 138, 124, 141, 126, 
	141, 142, 171, 143, 144, 138, 138, 124, 
	141, 126, 141, 142, 168, 143, 144, 138, 
	177, 138, 138, 124, 141, 126, 141, 142, 
	168, 143, 144, 138, 138, 124, 141, 126, 
	141, 142, 165, 160, 143, 144, 154, 138, 
	178, 138, 161, 138, 161, 138, 138, 124, 
	141, 126, 141, 142, 165, 160, 143, 144, 
	154, 138, 162, 138, 162, 138, 162, 138, 
	138, 124, 141, 126, 141, 142, 180, 143, 
	144, 154, 138, 179, 138, 179, 138, 179, 
	138, 138, 124, 141, 126, 141, 142, 182, 
	143, 144, 154, 138, 181, 138, 181, 138, 
	181, 138, 138, 124, 141, 126, 141, 142, 
	182, 143, 144, 154, 138, 183, 138, 183, 
	138, 183, 138, 138, 124, 141, 126, 141, 
	142, 182, 143, 144, 154, 138, 184, 138, 
	184, 138, 184, 138, 138, 124, 141, 126, 
	141, 142, 182, 143, 144, 154, 138, 138, 
	124, 141, 126, 141, 142, 143, 144, 138, 
	185, 138, 179, 138, 179, 138, 138, 124, 
	141, 126, 141, 142, 165, 182, 143, 144, 
	154, 138, 186, 138, 181, 138, 181, 138, 
	138, 124, 141, 126, 141, 142, 165, 182, 
	143, 144, 154, 138, 187, 138, 183, 138, 
	183, 138, 138, 124, 141, 126, 141, 142, 
	165, 182, 143, 144, 154, 138, 184, 138, 
	184, 138, 184, 138, 138, 124, 141, 126, 
	141, 142, 143, 144, 138, 188, 138, 138, 
	124, 141, 126, 141, 142, 165, 143, 144, 
	138, 189, 138, 138, 124, 141, 126, 141, 
	142, 165, 143, 144, 138, 190, 138, 138, 
	124, 141, 126, 141, 142, 165, 143, 144, 
	138, 138, 124, 141, 126, 141, 142, 164, 
	143, 144, 138, 138, 124, 147, 131, 147, 
	148, 142, 148, 148, 138, 138, 149, 150, 
	191, 144, 191, 148, 138, 148, 138, 148, 
	138, 148, 138, 138, 124, 147, 131, 147, 
	148, 142, 148, 148, 138, 138, 149, 150, 
	192, 144, 192, 148, 138, 148, 138, 148, 
	138, 148, 138, 138, 124, 193, 131, 193, 
	148, 142, 148, 148, 138, 138, 149, 194, 
	144, 148, 138, 148, 138, 148, 138, 148, 
	138, 138, 124, 195, 126, 195, 142, 143, 
	194, 144, 138, 138, 124, 196, 126, 196, 
	197, 154, 197, 197, 138, 138, 143, 155, 
	144, 197, 138, 197, 138, 197, 138, 197, 
	138, 138, 124, 198, 199, 198, 200, 142, 
	200, 200, 138, 138, 201, 144, 200, 138, 
	200, 138, 200, 138, 200, 138, 138, 124, 
	125, 126, 125, 203, 127, 202, 202, 202, 
	124, 125, 126, 125, 205, 127, 142, 204, 
	204, 204, 124, 125, 126, 125, 205, 127, 
	142, 206, 206, 206, 124, 125, 126, 125, 
	205, 127, 142, 207, 207, 207, 124, 125, 
	126, 125, 205, 127, 142, 124, 125, 126, 
	125, 209, 127, 208, 202, 202, 124, 125, 
	126, 125, 210, 205, 127, 142, 211, 204, 
	204, 124, 125, 126, 125, 127, 212, 124, 
	125, 126, 125, 213, 127, 214, 124, 125, 
	126, 125, 127, 215, 124, 125, 126, 125, 
	216, 127, 217, 124, 125, 126, 125, 127, 
	218, 124, 125, 126, 125, 127, 142, 219, 
	124, 125, 126, 125, 127, 142, 220, 124, 
	125, 126, 125, 127, 142, 124, 125, 126, 
	125, 216, 127, 221, 124, 125, 126, 125, 
	216, 127, 124, 125, 126, 125, 213, 127, 
	222, 124, 125, 126, 125, 213, 127, 124, 
	125, 126, 125, 210, 205, 127, 142, 223, 
	206, 206, 124, 125, 126, 125, 210, 205, 
	127, 142, 207, 207, 207, 124, 125, 126, 
	125, 225, 127, 142, 224, 224, 224, 124, 
	125, 126, 125, 227, 127, 142, 226, 226, 
	226, 124, 125, 126, 125, 227, 127, 142, 
	228, 228, 228, 124, 125, 126, 125, 227, 
	127, 142, 229, 229, 229, 124, 125, 126, 
	125, 227, 127, 142, 124, 125, 126, 125, 
	127, 230, 224, 224, 124, 125, 126, 125, 
	210, 227, 127, 142, 231, 226, 226, 124, 
	125, 126, 125, 210, 227, 127, 142, 232, 
	228, 228, 124, 125, 126, 125, 210, 227, 
	127, 142, 229, 229, 229, 124, 125, 126, 
	125, 127, 233, 124, 125, 126, 125, 210, 
	127, 234, 124, 125, 126, 125, 210, 127, 
	235, 124, 125, 126, 125, 210, 127, 124, 
	125, 126, 125, 209, 127, 124, 130, 131, 
	130, 132, 132, 132, 133, 134, 236, 236, 
	132, 132, 132, 132, 132, 132, 124, 130, 
	131, 130, 132, 132, 132, 133, 134, 237, 
	237, 132, 132, 132, 132, 132, 132, 124, 
	238, 131, 238, 132, 132, 132, 133, 239, 
	132, 132, 132, 132, 132, 132, 124, 240, 
	126, 240, 127, 239, 124, 241, 126, 241, 
	242, 138, 242, 242, 127, 139, 242, 242, 
	242, 242, 242, 242, 124, 243, 199, 243, 
	244, 244, 244, 245, 244, 244, 244, 244, 
	244, 244, 124, 1, 0
};

static readonly byte[] _tsip_machine_parser_header_To_trans_targs =  new byte [] {
	2, 0, 3, 4, 5, 91, 96, 11, 
	101, 6, 7, 8, 9, 10, 12, 13, 
	12, 14, 15, 16, 16, 17, 18, 202, 
	19, 22, 79, 20, 21, 23, 17, 22, 
	18, 27, 23, 24, 25, 26, 28, 43, 
	34, 44, 29, 30, 31, 32, 33, 35, 
	37, 42, 36, 38, 38, 39, 40, 41, 
	45, 78, 46, 49, 47, 48, 50, 65, 
	51, 63, 52, 53, 61, 54, 55, 59, 
	56, 57, 58, 60, 62, 64, 66, 74, 
	67, 70, 68, 69, 71, 72, 73, 75, 
	76, 77, 80, 81, 82, 86, 82, 83, 
	84, 85, 87, 90, 88, 89, 38, 17, 
	90, 18, 92, 94, 91, 93, 8, 11, 
	93, 95, 96, 97, 99, 100, 98, 102, 
	101, 104, 103, 103, 105, 105, 17, 106, 
	107, 196, 108, 17, 107, 106, 109, 108, 
	109, 110, 111, 161, 105, 111, 112, 113, 
	118, 114, 155, 115, 114, 113, 116, 115, 
	116, 117, 119, 120, 111, 121, 154, 122, 
	125, 123, 124, 126, 141, 127, 139, 128, 
	129, 137, 130, 131, 135, 132, 133, 134, 
	136, 138, 140, 142, 150, 143, 146, 144, 
	145, 147, 148, 149, 151, 152, 153, 156, 
	157, 158, 159, 158, 159, 160, 111, 17, 
	160, 113, 162, 195, 163, 166, 164, 165, 
	167, 182, 168, 180, 169, 170, 178, 171, 
	172, 176, 173, 174, 175, 177, 179, 181, 
	183, 191, 184, 187, 185, 186, 188, 189, 
	190, 192, 193, 194, 197, 198, 199, 200, 
	199, 200, 201, 105, 201, 106
};

static readonly sbyte[] _tsip_machine_parser_header_To_trans_actions =  new sbyte [] {
	0, 0, 0, 0, 0, 1, 1, 0, 
	1, 0, 0, 0, 0, 0, 1, 0, 
	0, 0, 0, 3, 0, 0, 0, 11, 
	0, 1, 1, 0, 0, 9, 9, 0, 
	9, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 9, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 9, 0, 0, 0, 
	0, 0, 0, 1, 0, 0, 7, 7, 
	0, 7, 0, 0, 0, 5, 5, 5, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 5, 0, 0, 3, 3, 3, 
	1, 1, 16, 16, 0, 16, 0, 3, 
	3, 0, 0, 0, 16, 3, 0, 3, 
	0, 1, 1, 16, 0, 16, 0, 3, 
	3, 0, 0, 0, 16, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 16, 0, 3, 3, 1, 13, 13, 
	0, 13, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 16, 0, 
	3, 3, 1, 13, 0, 13
};

const int tsip_machine_parser_header_To_start = 1;
const int tsip_machine_parser_header_To_first_final = 202;
const int tsip_machine_parser_header_To_error = 0;

const int tsip_machine_parser_header_To_en_main = 1;


/* #line 133 "./ragel/tsip_parser_header_To.rl" */

		public static TSIP_HeaderTo Parse(String data)
		{
			int cs = 0;
			int p = 0;
			int pe = data.Length;
			int eof = pe;
			TSIP_HeaderTo hdr_to = new TSIP_HeaderTo();

			int tag_start = 0;
			
			
/* #line 797 "../Headers/TSIP_HeaderTo.cs" */
	{
	cs = tsip_machine_parser_header_To_start;
	}

/* #line 145 "./ragel/tsip_parser_header_To.rl" */
			
/* #line 804 "../Headers/TSIP_HeaderTo.cs" */
	{
	sbyte _klen;
	short _trans;
	sbyte _acts;
	sbyte _nacts;
	short _keys;

	if ( p == pe )
		goto _test_eof;
	if ( cs == 0 )
		goto _out;
_resume:
	_keys = _tsip_machine_parser_header_To_key_offsets[cs];
	_trans = (short)_tsip_machine_parser_header_To_index_offsets[cs];

	_klen = _tsip_machine_parser_header_To_single_lengths[cs];
	if ( _klen > 0 ) {
		short _lower = _keys;
		short _mid;
		short _upper = (short) (_keys + _klen - 1);
		while (true) {
			if ( _upper < _lower )
				break;

			_mid = (short) (_lower + ((_upper-_lower) >> 1));
			if ( data[p] < _tsip_machine_parser_header_To_trans_keys[_mid] )
				_upper = (short) (_mid - 1);
			else if ( data[p] > _tsip_machine_parser_header_To_trans_keys[_mid] )
				_lower = (short) (_mid + 1);
			else {
				_trans += (short) (_mid - _keys);
				goto _match;
			}
		}
		_keys += (short) _klen;
		_trans += (short) _klen;
	}

	_klen = _tsip_machine_parser_header_To_range_lengths[cs];
	if ( _klen > 0 ) {
		short _lower = _keys;
		short _mid;
		short _upper = (short) (_keys + (_klen<<1) - 2);
		while (true) {
			if ( _upper < _lower )
				break;

			_mid = (short) (_lower + (((_upper-_lower) >> 1) & ~1));
			if ( data[p] < _tsip_machine_parser_header_To_trans_keys[_mid] )
				_upper = (short) (_mid - 2);
			else if ( data[p] > _tsip_machine_parser_header_To_trans_keys[_mid+1] )
				_lower = (short) (_mid + 2);
			else {
				_trans += (short)((_mid - _keys)>>1);
				goto _match;
			}
		}
		_trans += (short) _klen;
	}

_match:
	_trans = (short)_tsip_machine_parser_header_To_indicies[_trans];
	cs = _tsip_machine_parser_header_To_trans_targs[_trans];

	if ( _tsip_machine_parser_header_To_trans_actions[_trans] == 0 )
		goto _again;

	_acts = _tsip_machine_parser_header_To_trans_actions[_trans];
	_nacts = _tsip_machine_parser_header_To_actions[_acts++];
	while ( _nacts-- > 0 )
	{
		switch ( _tsip_machine_parser_header_To_actions[_acts++] )
		{
	case 0:
/* #line 32 "./ragel/tsip_parser_header_To.rl" */
	{
		tag_start = p;
	}
	break;
	case 1:
/* #line 36 "./ragel/tsip_parser_header_To.rl" */
	{
		int len = (int)(p  - tag_start);
		if(hdr_to != null && hdr_to.Uri == null){
			if((hdr_to.Uri = TSIP_ParserUri.Parse(data.Substring(tag_start, len))) != null && !String.IsNullOrEmpty(hdr_to.DisplayName)){
				hdr_to.Uri.DisplayName = hdr_to.DisplayName;
			}
		}
	}
	break;
	case 2:
/* #line 45 "./ragel/tsip_parser_header_To.rl" */
	{
		hdr_to.DisplayName = TSK_RagelState.Parser.GetString(data, p, tag_start);
		hdr_to.DisplayName = TSK_String.UnQuote(hdr_to.DisplayName);
	}
	break;
	case 3:
/* #line 50 "./ragel/tsip_parser_header_To.rl" */
	{
		hdr_to.Tag = TSK_RagelState.Parser.GetString(data, p, tag_start);
	}
	break;
	case 4:
/* #line 54 "./ragel/tsip_parser_header_To.rl" */
	{
		hdr_to.Params = TSK_RagelState.Parser.AddParam(data, p, tag_start, hdr_to.Params);
	}
	break;
	case 5:
/* #line 58 "./ragel/tsip_parser_header_To.rl" */
	{
	}
	break;
/* #line 919 "../Headers/TSIP_HeaderTo.cs" */
		default: break;
		}
	}

_again:
	if ( cs == 0 )
		goto _out;
	if ( ++p != pe )
		goto _resume;
	_test_eof: {}
	_out: {}
	}

/* #line 146 "./ragel/tsip_parser_header_To.rl" */
			
			if( cs < 
/* #line 936 "../Headers/TSIP_HeaderTo.cs" */
202
/* #line 147 "./ragel/tsip_parser_header_To.rl" */
 ){
				TSK_Debug.Error("Failed to parse SIP 'To' header.");
				hdr_to.Dispose();
				hdr_to = null;
			}
			
			return hdr_to;
		}
	}
}